﻿using System;

namespace StockholmsStad.Data.Interfaces
{
    ///<summary>
    /// Inkapsling av ett databascontext. Används i businesslagret för att initera
    /// databasoperationer
    /// </summary>
    public interface IDataContext : IDisposable
    {
        ///<summary>
        /// Om contextet innehåller en transaktion så rullas databasoperationenerna tillbaka.
        /// InvalidOperationException kastas om contextet inte innehåller någon transaktion
        ///</summary>
        void TransactionDispose();

        /// <summary>
        /// Om contextet innehåller en transation så köras commit på transaktionen.
        /// InvalidOperationException kastas om contextet inte innehåller någon transaktion
        /// </summary>
        void TransactionComplete();
    }
}